package com.unitd.base.module.master.mybatis.mapper;

import com.unitd.base.frame.plugin.mybatis.mapper.IBaseDao;
import com.unitd.base.module.master.pojo.po.UserPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 用户基本信息表信息数据库操作接口类
 *
 * @author hudan
 * @version 1.0
 * @filename UserMapper.java
 * @copyright www.symdata.cn
 * @date 2020-07-08
 */
@Repository
public interface UserMapper extends IBaseDao<UserPO> {

    /**
     * 根据用户ID获取该手机号对应的用户信息
     *
     * @param userId 用户ID
     * @return 用户基本信息
     */
    UserPO selectByUserId(@Param("userId") Long userId);

    /**
     * 根据用户手机号获取该手机号对应的用户信息
     *
     * @param mobile 用户手机号
     * @return 用户基本信息
     */
    UserPO selectByMobile(@Param("mobile") String mobile);

    /**
     * 根据用户绑定微信得到的微信openid获取该openid对应的用户信息
     *
     * @param wxOpenId 微信openid
     * @return 用户基本信息
     */
    UserPO selectByWxOpenId(@Param("wxOpenId") String wxOpenId);

    /**
     * 根据查询条件获取公司客户分页列表信息
     *
     * @param param 查询条件(包含分页参数)
     * @return 公司用户信息列表
     */
    List<UserPO> listByParam(Map<String, Object> param);
}